﻿using Autofac;
using Microsoft.Extensions.Configuration;
using Serilog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SD.App.Desktop
{
    public class LoggerModule : Module
    {
        protected override void Load(ContainerBuilder builder)
        {
            // 1. 优先尝试读取 appsettings.json 中的 Serilog 配置
            var loggerConfig = new LoggerConfiguration();

            // 2. 适配低版本：若无法获取配置（如 App 中无全局配置），直接配置基础日志
            loggerConfig.ReadFrom.Configuration(
                new ConfigurationBuilder()
                    .SetBasePath(AppContext.BaseDirectory)
                    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                    .Build()
            );

            // 3. 创建日志实例
            Log.Logger = loggerConfig.CreateLogger();

            // 注册 Serilog 单例实例
            builder.RegisterInstance(Log.Logger)
                   .As<ILogger>()
                   .SingleInstance();
        }
    }
}
